Initializes a new UserFilterCommand class object with explicit parameters.
Supported in Silverlight, Windows Phone 7
Syntax
Parameters
- filterWidth
- Number of columns in the user-defined array (mask). This parameter only accepts positive values.
- filterHeight
- Number of rows in the user-defined array (mask). This parameter only accepts positive values.
- centerPoint
- Any two-dimensional position of the matrix array, to be used as the matrix (mask)center.
- divisor
- Value used to divide the final result of the output. This must be a non-zero value. If you want to use floating point values for the matrix elements and the divisor, multiply the matrix elements and the divisor with the same value (for example, 10, 100, 1000). This parameter only accepts positive values.
- offset
- Value used to offset the final result of the output.
- type
- Flag that indicates the type of operation.
- matrix
- Array of (filterWidth * filterHeight) integers containing the user-defined matrix (mask). The elements are stored in row order (first row, second row, etc).
Example
Run the Leadtools.ImageProcessing.Effects.UserFilterCommand on an image, In this example the high pass.filter will be applied using user defined matrix.
Visual Basic | Copy Code |
---|
Public Sub UserFilterConstructorExample()
Dim codecs As New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"))
' Prepare the command
Dim i As Integer
Dim j As Integer
Dim matrix() As Integer
ReDim matrix(8)
' Initialize the array with factor used to apply the high pass filter.
For i = 0 To 2
For j = 0 To 2
If (j = 1 Or i = 1) Then
If (j = 1 And i = 1) Then
matrix(i * 3 + j) = 5
Else
matrix(i * 3 + j) = -1
End If
Else
matrix(i * 3 + j) = 0
End If
Next
Next
Dim command As UserFilterCommand = New UserFilterCommand(3, 3, New LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix)
' Apply the high pass custom filter.
command.Run(leadImage)
codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24)
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class |
C# | Copy Code |
---|
public void UserFilterConstructorExample()
{
// Load an image
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"));
// Prepare the command
int [] matrix = new int[9];
// Initialize the array with factor used to apply the high pass filter.
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
if(j == 1 || i == 1)
{
if(j == 1 && i == 1)
matrix[i * 3 + j] = 5;
else
matrix[i * 3 + j] = -1;
}
else
matrix[i * 3 + j] = 0;
}
}
UserFilterCommand command = new UserFilterCommand(3, 3, new LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix);
// Apply the high pass custom filter.
command.Run(image);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
} |
SilverlightCSharp | Copy Code |
---|
public void UserFilterConstructorExample(RasterImage image, Stream outStream)
{
// Prepare the command
int[] matrix = new int[9];
// Initialize the array with factor used to apply the high pass filter.
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (j == 1 || i == 1)
{
if (j == 1 && i == 1)
matrix[i * 3 + j] = 5;
else
matrix[i * 3 + j] = -1;
}
else
matrix[i * 3 + j] = 0;
}
}
UserFilterCommand command = new UserFilterCommand(3, 3, new LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix);
// Apply the high pass custom filter.
command.Run(image);
// Save result image
RasterCodecs codecs = new RasterCodecs();
codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24);
image.Dispose();
} |
SilverlightVB | Copy Code |
---|
Public Sub UserFilterConstructorExample(ByVal image As RasterImage, ByVal outStream As Stream)
' Prepare the command
Dim matrix As Integer() = New Integer(8){}
' Initialize the array with factor used to apply the high pass filter.
For i As Integer = 0 To 2
For j As Integer = 0 To 2
If j = 1 OrElse i = 1 Then
If j = 1 AndAlso i = 1 Then
matrix(i * 3 + j) = 5
Else
matrix(i * 3 + j) = -1
End If
Else
matrix(i * 3 + j) = 0
End If
Next j
Next i
Dim command As UserFilterCommand = New UserFilterCommand(3, 3, New LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix)
' Apply the high pass custom filter.
command.Run(image)
' Save result image
Dim codecs As RasterCodecs = New RasterCodecs()
codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24)
image.Dispose()
End Sub |
Requirements
Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)
See Also